const db = require('../db/index.js');
const fs = require('fs');

// 上传轮播图的接口处理函数
exports.uploadSwiper = (req, res) => {
    // 获取上传文件的临时文件名（由multer等中间件生成）
    let oldName = req.files[0].filename;

    // 处理原始文件名编码转换（解决中文文件名乱码问题）
    // 从latin1编码转换为utf8
    // 当文件名中包含中文时，会出现报错，因为无需转换，此时，将from里的encoding参数设置为utf8即可
    let newName = Buffer.from(req.files[0].originalname, 'utf-8').toString('utf8')

    // 将临时文件移动到目标目录并重命名为原始文件名
    // 注意：直接使用原始文件名可能导致文件覆盖
    fs.renameSync('./public/upload/' + oldName, './public/upload/' + newName)

    // 准备SQL插入语句，使用set语法动态设置字段
    const sql = 'update setting set set_value = ? where set_name = ?'

    // 执行数据库插入操作
    db.query(sql,[`http://127.0.0.1:3030/upload/${newName}`,req.body.name], (err, result) => {
        // 如果发生错误，使用自定义错误处理函数返回错误信息
        if (err) return res.cc(err)
        // 返回成功响应，包含唯一标识和图片访问URL
        res.send({
            status: 0, // 0表示成功
            message: '上传轮播图成功',
        })
    })
}
//获取所有轮播图
exports.getAllSwiper = (req, res) => {
    const sql = 'select * from setting where set_name like "swiper%" limit 4'
    db.query(sql, (err, result) => {
        if (err) return res.cc(err);
        let array = [];
        result.forEach((item)=>{
            array.push(item.set_value)
        })
        res.send(array);
    })
}

//编辑相关政策
exports.editPolicy = (req, res) => {
    const sql = 'update setting set set_text = ? where set_name = ?'
    db.query(sql,[req.body.set_text,req.body.set_name], (err, result) => {
        if (err) return res.cc(err);
        res.send({
            status: 0,
            message: '编辑相关政策成功',
        })
    })
}
//获取相关政策
exports.getPolicy = (req, res) => {
    const sql = 'select * from setting where set_name like "%学金%"'
    db.query(sql,(err, result) => {
        if (err) return res.cc(err);
        res.send({
            status: 0,
            message: '获取相关政策成功',
            results: result
        })
    })
}

//获取单个政策
exports.getOnePolicy = (req, res) => {
    const sql ='select * from setting where set_name = ?'
    db.query(sql,[req.body.set_name],(err, result) => {
        if (err) return res.cc(err);
        res.send({
            status: 0,
            message: '获取相关政策成功',
            results: result
        })
    })
}

//部门设置
exports.setDepartment = (req, res) => {
    const sql = 'update setting set set_value = ? where set_name = "部门设置"'
    db.query(sql, [req.body.set_value], (err, result) => {
        if (err) return res.cc(err);
        res.send({
            status: 0,
            message: '设置部门成功'
        })
    })
}

//获取部门
exports.getDepartment = (req, res) => {
    const sql = 'select set_value from setting where set_name = "部门设置"'
    db.query(sql, (err, result) => {
        if (err) return res.cc(err);
        res.send(result[0].set_value)
    })
}


//院系设置
exports.setCollege = (req, res) => {
    const sql = 'update setting set set_value = ? where set_name = "院系设置"'
    db.query(sql, [req.body.set_value], (err, result) => {
        if (err) return res.cc(err);
        res.send({
            status: 0,
            message: '设置部门成功'
        })
    })
}

//获取院系
exports.getCollege = (req, res) => {
    const sql = 'select set_value from setting where set_name = "院系设置"'
    db.query(sql, (err, result) => {
        if (err) return res.cc(err);
        res.send(result[0].set_value)
    })
}